package cndw.core.dispatch;

import cndw.core.util.annotation.NotNull;
import io.netty.channel.Channel;

/**
 * Session管理器
 * 
 * @author zuojie.x
 */
public interface SessionManager {
	/**
	 * 获取与本次连接对应的{@link Session}<br/>
	 * 如果没有获取到,那么实现应该创建一个默认的{@link Session},保存并返回,以供下一次获取.<br/>
	 * @param channel
	 * @return 本次连接的{@link Session}
	 */
	@NotNull
	Session getSession(Channel channel);
	
	/**
	 * 删除与本次连接相对应的{@link Session}
	 * @param channel
	 * @return 被删除的{@link Session},在没有与channel匹配的值时返回null
	 */
	Session removeSession(Channel channel);
}
